Skip to content

Conversation

@sameerasw
Copy link
Owner

This pull request introduces a new DIY Automation system to the app, enabling users to create custom automations based on device states and triggers. The changes include new domain models for automations, triggers, states, and actions, a repository for storing and managing automations, and a service/manager infrastructure for running these automations. It also includes necessary initialization and dependency updates, as well as integration with the app's UI.

DIY Automation Framework

  • Added new domain models for DIY automations: Automation, Trigger, State, and Action, each with extensible sealed interfaces and predefined types for common automation scenarios. [1] [2] [3] [4]
  • Implemented DIYRepository, a singleton for storing, serializing, deserializing, and managing automations using shared preferences and Gson with sealed class support.

Automation Execution Infrastructure

  • Introduced AutomationManager and AutomationService to manage and execute automations, including module lifecycle management and foreground service operation with notification support. [1] [2]
  • Registered AutomationService in AndroidManifest.xml with appropriate foreground service configuration.

App Integration & Initialization

  • Initialized DIYRepository and AutomationManager in EssentialsApp to ensure automations are loaded and managed on app startup.
  • Updated SettingsRepository to include automation preferences in config export.
  • Swapped the placeholder DIY screen for the new DIYScreen in the main activity, connecting the new automation UI. [1] [2]

Dependency Updates

  • Added dependencies for Material3 UI components and Kotlin Reflect to support sealed class serialization. [1] [2]

Manifest & Activity Updates

  • Registered the new AutomationEditorActivity and moved AppFreezingActivity to a new package in the manifest for better organization.

@sameerasw sameerasw self-assigned this Jan 13, 2026
@sameerasw sameerasw added the enhancement New feature or request label Jan 13, 2026
@sameerasw sameerasw merged commit f99cad8 into develop Jan 13, 2026
1 check passed
@github-project-automation github-project-automation bot moved this from Backlog to Done in Essentials Progress Jan 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants